// pages/volunteer/volunteer.ts

interface VolunteerActivity {
  id: number;
  title: string;
  image: string;
  location: string;
  date: string;
  quota: number;
  registered: number;
  status: string;
  tags: string[];
  description: string;
}

Page({
  data: {
    activeTab: 'all',
    activities: [] as VolunteerActivity[],
    filteredActivities: [] as VolunteerActivity[],
    userInfo: {
      isVolunteer: false,
      points: 0,
      completedCount: 0,
      level: '普通志愿者'
    }
  },

  onLoad: function () {
    this.loadActivities();
    this.checkUserStatus();
  },

  // 加载活动数据
  loadActivities: function () {
    wx.showLoading({
      title: '加载中',
    });
    
    // 模拟API请求获取活动数据
    setTimeout(() => {
      const activities: VolunteerActivity[] = [
        {
          id: 1,
          title: '森林公园环保清洁日',
          image: 'https://images.unsplash.com/photo-1497644083578-611b798c60f3',
          location: '贵阳市修文县扎佐镇森林公园',
          date: '2023-12-15 09:00-12:00',
          quota: 20,
          registered: 15,
          status: 'ongoing',
          tags: ['环保', '户外'],
          description: '参与森林公园环境清洁活动，维护自然环境，拾取垃圾并进行分类处理，宣传环保理念。活动全程3小时，提供必要的清洁工具和饮用水。'
        },
        {
          id: 2,
          title: '青岩古镇旅游咨询服务',
          image: 'https://images.unsplash.com/photo-1527631120902-378417754324',
          location: '贵阳市花溪区青岩古镇游客中心',
          date: '2023-12-16至12-17 09:00-17:00',
          quota: 10,
          registered: 8,
          status: 'ongoing',
          tags: ['文化', '服务'],
          description: '在青岩古镇游客中心提供旅游咨询服务，为游客介绍古镇历史文化和景点信息，提供路线指引，帮助游客了解贵州传统文化。要求志愿者对青岩古镇有一定了解，有较好的沟通能力。'
        },
        {
          id: 3,
          title: '社区老人关爱行动',
          image: 'https://images.unsplash.com/photo-1516307073-39f2809ebcd9',
          location: '贵阳市南明区花果园社区',
          date: '2023-12-18 14:00-16:30',
          quota: 15,
          registered: 12,
          status: 'ongoing',
          tags: ['关爱', '健康'],
          description: '走访社区孤寡老人，提供生活帮助和心理陪伴，开展健康知识普及和简单的康养活动。本次活动需要提前报名并参加简单培训，有医疗或护理背景者优先。'
        },
        {
          id: 4,
          title: '贵州中医药文化推广活动',
          image: 'https://images.unsplash.com/photo-1584362917165-526a968579e8',
          location: '贵阳市观山湖区金阳会展中心',
          date: '2023-12-20 09:30-16:00',
          quota: 12,
          registered: 6,
          status: 'ongoing',
          tags: ['文化', '健康'],
          description: '参与贵州中医药文化推广展会，协助介绍贵州特色中草药和传统医疗方法，向公众普及中医药保健知识。需要对中医药文化有基本了解，能够清晰表达。'
        },
        {
          id: 5,
          title: '山区小学支教活动',
          image: 'https://images.unsplash.com/photo-1594608661623-aa0bd3a69799',
          location: '黔东南州台江县台盘乡中心小学',
          date: '2023-12-25至12-30',
          quota: 8,
          registered: 8,
          status: 'full',
          tags: ['教育', '关爱'],
          description: '前往山区小学开展为期6天的支教活动，内容包括课业辅导、素质教育、文化活动等。要求有教学经验或相关专业背景，能够独立组织教学活动，需自行解决往返交通。'
        },
        {
          id: 6,
          title: '黄果树景区环境监测',
          image: 'https://images.unsplash.com/photo-1415125511381-8a990deeef29',
          location: '安顺市镇宁县黄果树景区',
          date: '2023-12-05（已结束）',
          quota: 15,
          registered: 15,
          status: 'completed',
          tags: ['环保', '科研'],
          description: '参与黄果树景区环境质量监测工作，包括水质采样、空气质量检测等，为景区生态保护提供数据支持。要求有环境监测相关知识或经验，能够按照规范流程操作设备。'
        }
      ];
      
      this.setData({
        activities,
        filteredActivities: activities
      });
      
      wx.hideLoading();
    }, 500);
  },

  // 检查用户状态
  checkUserStatus: function () {
    // 模拟API请求获取用户志愿者状态
    setTimeout(() => {
      // 模拟用户是志愿者
      this.setData({
        'userInfo.isVolunteer': true,
        'userInfo.points': 120,
        'userInfo.completedCount': 5,
        'userInfo.level': '星级志愿者'
      });
    }, 300);
  },

  // 切换标签页
  changeTab: function (e: any) {
    const tab = e.currentTarget.dataset.tab;
    this.setData({
      activeTab: tab
    });
    this.filterActivities();
  },

  // 筛选活动
  filterActivities: function () {
    const { activities, activeTab } = this.data;
    
    let filtered = activities;
    
    // 根据标签筛选
    if (activeTab !== 'all') {
      filtered = filtered.filter(item => item.status === activeTab);
    }
    
    this.setData({
      filteredActivities: filtered
    });
  },

  // 查看活动详情
  viewActivityDetail: function (e: any) {
    const id = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: `/pages/volunteer_detail/volunteer_detail?id=${id}`
    });
  },

  // 加入志愿者
  joinVolunteer: function () {
    if (this.data.userInfo.isVolunteer) {
      // 已经是志愿者，跳转到个人中心
      wx.navigateTo({
        url: '/pages/volunteer_profile/volunteer_profile'
      });
    } else {
      // 不是志愿者，跳转到注册页面
      wx.navigateTo({
        url: '/pages/volunteer_register/volunteer_register'
      });
    }
  },

  // 报名活动
  registerActivity: function (e: any) {
    const id = e.currentTarget.dataset.id;
    
    // 检查是否是志愿者
    if (!this.data.userInfo.isVolunteer) {
      wx.showModal({
        title: '提示',
        content: '您还不是志愿者，需要先注册成为志愿者',
        confirmText: '去注册',
        success: (res) => {
          if (res.confirm) {
            this.joinVolunteer();
          }
        }
      });
      return;
    }
    
    // 检查活动是否已满
    const activity = this.data.activities.find(item => item.id === id);
    if (activity && activity.registered >= activity.quota) {
      wx.showToast({
        title: '活动名额已满',
        icon: 'none'
      });
      return;
    }
    
    // 跳转到报名页面
    wx.navigateTo({
      url: `/pages/volunteer_register_form/volunteer_register_form?id=${id}`
    });
  }
}) 